package com.rabbiter.oes.controller;

import com.rabbiter.oes.entity.ApiResult;
import com.rabbiter.oes.entity.Replay;
import com.rabbiter.oes.serviceimpl.ReplayServiceImpl;
import com.rabbiter.oes.util.ApiResultHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 回复信息控制器，处理回复相关的HTTP请求
 */
@RestController
public class ReplayController {

    @Autowired
    private ReplayServiceImpl replayService;

    /**
     * 新增回复接口
     * @param replay 通过请求体传递的回复实体对象（JSON格式）
     * @return 包含操作结果的ApiResult对象：
     *         - 成功时返回状态码200，"添加成功！"消息及新增数据ID
     *         - 失败时返回状态码400，"添加失败！"消息及空数据
     */
    @PostMapping("/replay")
    public ApiResult add(@RequestBody Replay replay) {
        int data = replayService.add(replay);
        if (data != 0) {
            return ApiResultHandler.buildApiResult(200,"添加成功！",data);
        } else {
            return ApiResultHandler.buildApiResult(400,"添加失败！",null);
        }
    }

    /**
     * 根据消息ID查询所有回复
     * @param messageId 路径参数，要查询的消息ID
     * @return 包含状态码200，"根据messageId查询"消息及对应回复列表的ApiResult对象
     */
    @GetMapping("/replay/{messageId}")
    public ApiResult findAllById(@PathVariable("messageId") Integer messageId) {
        List<Replay> res = replayService.findAllById(messageId);
        return ApiResultHandler.buildApiResult(200,"根据messageId查询",res);
    }
}
